/*
STL stack 栈容器
stack 构造函数：
  stack<T> stk;  // 默认构造函数
  stack(const stack &stk);  // 拷贝构造函数

stack 赋值操作
  函数原型
    stack& operator=(const stack& stk);  // 重载等号操作符

stack 存取数据
  函数原型
    push(elem);  // 向栈顶添加元素
    pop();  // 移除栈顶元素
    top();  // 返回栈顶元素

stack 大小操作
  函数原型
    empty();  // 判断栈是否为空
    size();  // 返回栈大小

*/

#include <iostream>
#include <stack>
using namespace std;

int main()
{
    stack<int> stk;
    // 入栈
    stk.push(1);  
    stk.push(2);
    stk.push(3);

    cout << "stk size: " << stk.size() << endl;

    while(!stk.empty())
    {
        // 输出栈顶元素
        cout << "stk top is: " << stk.top() << endl;

        // 出栈
        stk.pop();
    }

    return 0;
}